#include <QtCore/QFile>
#include <QtCore/QFileInfo>
+#include <QtCore/QStringBuilder>
#include <QtCore/QIODevice>
#include <cstdio>
+#include "src/core/logging.h"
#include "defs.h"
// Mimic gbfile open services
}
if (!status) {
- fatal("Cannot open '%s' for %s. Error was '%s'.\n",
- gpsbabel_testmode()? qPrintable(QFileInfo(*this).fileName()) : qPrintable(QFile::fileName()),
- (mode & QIODevice::WriteOnly)? "write" : "read",
- qPrintable(QFile::errorString()));
+ fatal(FatalMsg().noquote() << "Cannot open '" %
+ (gpsbabel_testmode() ?
+ QFileInfo(*this).fileName() :
+ QFileInfo(*this).absoluteFilePath()) %
+ "' for " %
+ (mode & QIODevice::WriteOnly ? "write" : "read") %
+ ". Error was '" %
+ QFile::errorString() %
+ "'.");
}
return status;
}
}
FILE* f = ufopen(QString::fromUtf8(fname), type);
if (nullptr == f) {
+ // There are some possible vagaries of using Qt for the full pathname
+ // vs. the STD C library used for the actual file I/O. It's worth it
+ // to get a better error message.
+ QFileInfo info(fname);
fatal("%s cannot open '%s' for %s. Error was '%s'.\n",
- errtxt, fname,
+ errtxt, qPrintable(info.absoluteFilePath()),
am_writing ? "write" : "read",
strerror(errno));
}
maxlen = codec->name().size();
}
}
- info << "Available Codecs:" << endl;
- info << qSetFieldWidth(8) << "MIBenum" << qSetFieldWidth(maxlen+1) << "Name" << qSetFieldWidth(0) << "Aliases" << endl;
+ info << "Available Codecs:" << Qt::endl;
+ info << qSetFieldWidth(8) << "MIBenum" << qSetFieldWidth(maxlen+1) << "Name" << qSetFieldWidth(0) << "Aliases" << Qt::endl;
for (auto mib : mibs) {
auto codec = QTextCodec::codecForMib(mib);
info << qSetFieldWidth(8) << mib << qSetFieldWidth(maxlen+1) << codec->name() << qSetFieldWidth(0);
}
info << alias;
}
- info << endl;
+ info << Qt::endl;
}
}